#include "NetWorkProDefine.h"

#include <net/if.h>
#include <sys/ioctl.h>

/**
 * @brief 指定网卡加入多播组
 * 
 * @param[in] sockfd 有效的套接字
 * @param[in] grp sockaddr结构体，主要包含协议族、多播组IP信息
 * @param[in] grplen grp的长度
 * @param[in] ifname 指定网卡的名称，NULL为不指定
 * @param[in] ifindex 指定网卡的索引值，0为不指定
 * @return int 
 */
int mcast_join(int sockfd, const SA* grp, socklen_t grplen, const char* ifname, u_int ifindex);


int sockfd_to_family(int sockfd);


/**
 * @brief 自反馈属性，
 * 
 * @param sokcfd 
 * @param flag 1则开启，多播出去数据会反馈给本机
 * @return int 
 */
int mcast_setloop(int sokcfd, int flag);

void recv_all(int, socklen_t);
void send_all(int, SA*, socklen_t);